1. Field
Embodiments of the invention relate to the field of computer systems architecture. More specifically, embodiments of the invention relate to the field of command queuing.
2. Background Information
Native Command Queuing (NCQ) is an optional feature that is described, for example, in the document “Serial ATA II: Extensions to Serial ATA 1.0a”, Revision 1.2, published Aug. 27, 2004, as well as related documents. In brief, NCQ may allow a target to accept multiple commands from an initiator device, and to optimize or otherwise re-order the execution of those commands.
The commands in NCQ may include an NCQ tag value that may identify the command. The NCQ tag values may be used in various ways on the target-side of the architecture. For example, the tag values may potentially be used to convey pending status of commands and/or completion status of commands.
Conventionally, the above-described target-side utilization of the NCQ tag is often implemented in application layer software or firmware that is executed by a target-side processor. One potential problem with such an implementation is that the software or firmware may tend to increase the load on the processor or otherwise limit performance.